Many interframe encoding systems make use of reference pictures where the use of such reference pictures helps reduce the size of an encoded bit stream. This type of result is encoding efficiency is better than just using intraframe encoding techniques, by themselves. Many encoding standards therefore incorporate both intraframe and interfame encoding techniques to encode a bit stream from a series of moving images. As known in the art, different types of reference pictures are used for encoding standards such as an “I” picture which is encoded only by using elements within the picture itself (intraframe), a “B” picture which is encoded by using elements from within the picture itself and/or elements from two previous reference pictures (interframe), and a “P” picture which is encoded by using elements from within the picture itself and/or elements from one previous reference picture (interframe).
When the “B” or “P” pictures are being encoded and/or decoded, such pictures are therefore dependent on other reference frames so that such pictures may be properly encoded or constructed during a decoding operation. The encoding/decoding system should provide some type of memory location so that reference picture can be stored while other pictures are being encoded or decoded in view of such reference pictures. These types of pictures have a temporal relationship between each other.
This situation becomes more complex when considering a video standard where multiple views between different video pictures are to be considered. For example, FIG. 1 represents an exemplary embodiment of a reference picture structure used in a Multiview Video Coding system. Specifically, the presented structure pertains to the use of eight different views (S0-S7) for times (T0-T100) in accordance with the multiview encoding (MVC) scheme proposed in A. Vetro, Y. Su, H. Kimata, A. Smolic, “Joint Multiview Video Model (JMVM) 1.0”, JVT-T208.doc, Klagenfurt, Austria, July, 2006. This multiview encoding standard is based on coding in the Advanced Video Coding (AVC) standard (G. Sullivan, T. Wiegand, A. Luthra, “Draft of Version 4 of H.264/AVC (ITU-T Recommendation H.264 and ISO/IEC 14496-10 (MPEG-4 part 10) Advanced Video Coding)”, Palma de Mallorca, ES 18-22, October 2004). The large difference between both standards is AVC does not addresses coding multiview pictures while MVC does.
Referring back to FIG. 1, it can be seen for example that when coding a picture associated with view S1 at T1, that the picture to be coded is related to pictures (reference pictures) from the same view (S1 at T0 and S1 at T2), and that the picture to be coded is related to pictures from pictures from a different view (S0 at T1 and S2 at T1). Hence, when coding the picture associated with S1, T1, it would make sense to keep reference pictures (S1 at T0, S1 at T2, S0 at T1 and S2 at T1) in a memory device such as a buffer, register, RAM, and the like.
A generalized implementation for the operation for a coder and a memory device which stores reference pictures as used in the AVC video standard is shown in FIG. 2. Specifically, in block diagram 200 a coder 205, coding buffer 210, and decoded picture buffer (DPB) 215 are disclosed. During a coding operation (either encoding or decoding), a picture that is currently being coded by coder is present in coding buffer 210, while previously coded reference pictures are stored in decoded picture buffer 215.
A problem results however when having to code a picture which requires the use of more than two reference pictures, when such pictures are stored in DPB 215. That is, DPB 215 has to provide some type of organization to such reference pictures to make them available to coder 205 during the coding operation. It is also to be appreciated that different reference pictures may have to be accessed by a coder 205 via DPB 215 when coding a second picture. In the temporal case (such as AVC), this problem is complex enough, but it becomes the problem of making reference pictures available becomes magnified when having to consider reference pictures from different views (as shown in FIG. 1) when coding a picture in a video standard such as MVC.